package com.baizhi.collectionx;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 遍历集合之迭代器遍历
 * Iterator<E> iterator()
 *      该方法会获取一个用于遍历当前集合元素的迭代器
 *
 *    java.util.Iterator接口，迭代器接口，规定了迭代器编译集合的相关操作，使用迭代器遍历
 *    集合的过程为：问，取，删的步骤重复进行即可。 其中删除元素不是遍历过程中的必要操作
 *
 *    不同的集合实现类都提供了一个可以遍历自身元素的迭代器实现类，我们不需要记住他们的类名，仅仅以
 *    多态的角度当它是Iterator看待并操作即可
 *
 *  Iterator接口中提供了三个方法
 *      boolean hasNext()   问：是否还有下一个元素，有返回true，没有返回false
 *      E next()   取: 获取元素
 *      void remove()  删 ： 删除元素
 *
 */
public class IteratorDemo {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("one");
        c.add("#");
        c.add("two");
        c.add("#");
        c.add("three");
        c.add("#");
        c.add("four");
        c.add("#");
        c.add("five");

        Iterator iterator = c.iterator(); //获取到一个迭代器对象
        //问
        while(iterator.hasNext()){//询问是否有下一个元素
            String str = (String)iterator.next(); //获取每一个元素
           //删除集合中的“#”
            if("#".equals(str)){
                iterator.remove();
            }

        }
        System.out.println(c);

    }
}
